﻿namespace Services
{
    using System.Collections.Generic;
    using Entities;

    public interface IAuditedOperationsService
    {
        IEnumerable<AuditedOperation> SearchFileActionsPaged(FilterOperations filter, int page, out int totalCount, string columnName, bool isDescending);
        IEnumerable<AuditedOperation> SearchFileActions(FilterOperations filter);
        IEnumerable<AuditedOperation> SearchOffHours(FilterOperations filter);
        IEnumerable<AuditedOperation> GetByBotName(string botName, FilterOperations filter, ref int totalCount, string sort = null, string sortDir = null, int page = 1);
        IEnumerable<AuditedOperation> GetByBotName(string botName, FilterOperations filter);
        IEnumerable<AccessedExtension> GetTopTenAccessedExtensions(FilterOperations filter, out int totalNumber);
        IEnumerable<AuditedOperation> GetDeletionCompliance(TimeSpans ts, int value);
        IEnumerable<UserSummary> GetMostActiveUsers(FilterOperations filterOperations);
        IEnumerable<DirectoryCount> GetMostAccessedDirectories(FilterOperations filterOperations);
        IEnumerable<AuditedOperation> GetAccessHistory(TimeSpans ts, int value);
        IEnumerable<AuditedOperation> GetChangedFiles(FilterOperations filter);
        FileOperationsSummary GetFileOperationsSummary(FilterOperations filterOperations);
        IEnumerable<DirectoryOperations> GetDeleteOperationsGroupedByDirectory(FilterOperations filter);
    }
}